#pragma once
#include <sstream>


#include <string>
#include "../SQLExprImpl.h"
#include "../statement/SQLSelect.h"

#include "../statement/SQLSelect.h"

class SQLASTVisitor;

class SQLSomeExpr : virtual public SQLExprImpl
{

public:
  SQLSelect_ptr subQuery;

  SQLSomeExpr();
  virtual ~SQLSomeExpr();

  SQLSomeExpr(SQLSelect_ptr select);
  SHAREDOBJECT(SQLSomeExpr);

  SQLSelect_ptr getSubQuery();

  void setSubQuery(SQLSelect_ptr subQuery);

  void output(std::stringstream *  buf);

  // int hashCode();
  // BOOL_ptr equals(Object obj);
protected:
  void accept0(SQLASTVisitor_ptr visitor);
};

